/**
 * 
 */
package pl.marekbar;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.content.Context;



/**
 * @author marekbar1985
 * Operacje na plikach
 */
public class Plik
{
	private String sciezkaDoPliku;
	private Context kontekst;
	
	
	
	public Plik(Context kontekst, String sciezka)
	{
		File plik = new File(sciezka);
		if (plik.exists())
		{
			this.sciezkaDoPliku = sciezka;
		}
		else
		{
			this.sciezkaDoPliku = "";
		}
		this.kontekst = kontekst;
	}
	
	
	
	public Boolean istnieje()
	{
		return new File(this.sciezkaDoPliku).exists();
	}
	
	
	
	public static Boolean skopiujPlikAsset(Context kontekst, String nazwaPliku, String sciezkaDocelowa)
	{
		File plik = new File(sciezkaDocelowa);
		if (plik.exists()) return false;
		
		InputStream plikWejsciowy = null;
		OutputStream plikDocelowy = null;
		try
		{
			plikWejsciowy = kontekst.getAssets().open(nazwaPliku);
			plikDocelowy = new FileOutputStream(sciezkaDocelowa);
			byte[] bufor = new byte[1024];
			int dlugosc;

			while ((dlugosc = plikWejsciowy.read(bufor)) > 0)
			{
				plikDocelowy.write(bufor, 0, dlugosc);
			}
			Aplikacja.info("Skopiowano plik bazy");
		}
		catch (IOException e)
		{
			Aplikacja.blad(e.getMessage());
			return false;
		}
		finally
		{
			try
			{
				if (plikDocelowy == null || plikWejsciowy == null) return false;
				plikDocelowy.flush();
				plikDocelowy.close();
				plikWejsciowy.close();
			}
			catch (IOException e)
			{
				Aplikacja.blad(e.getMessage());
				return false;
			}
		}
		return true;
	}
}
